fflush関数は、ファイルポインタで示されるストリームのバッファリングされているデータを強制的に出力(フラッシュ)します。
#include <stdio.h>
int fflush(FILE *stream);
*streamはfopen関数で取得した、ファイルポインタを指定します。
戻り値として、成功した場合は0が、エラーの場合はEOFの値を返します。
バッファに蓄積されたデータは、バッファが満杯になったり、ファイルを閉じるとフラッシュされますので、通常はfflush関数を使う必要はありません。fflush関数は出力結果を直ちに反映したいような場合に使用します。
プログラム 例
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int count;
printf('ベルを鳴らす回数を入力してください ==> ');
scanf('%d', &count);
for ( ; count > 0; --count) {
printf('%c', 0x07); /* ベルを鳴らす */
fflush(stdout);
sleep(1);
}
return 0;
}
例の実行結果
1秒間隔で、5回ベルが鳴ります。
$ ./fflush.exe ベルを鳴らす回数を入力してください ==> 5 $